home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / ISSUE09 / CODERS / MBFORM1.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-04-04  |  6.0 KB  |  301 lines

  1. unit Mbform1;
  2.  
  3. interface
  4.  
  5. uses
  6.   SysUtils,
  7.   WinTypes,
  8.   WinProcs,
  9.   Messages,
  10.   Classes,
  11.   Graphics,
  12.   Controls,
  13.   Forms,
  14.   Dialogs,
  15.   StdCtrls,
  16.   ExtCtrls,
  17.   ClipBrd,
  18.   StrFunc,
  19.   ExptTool ;
  20.  
  21. type
  22.   TMBDesigner = class(TForm)
  23.     TestBtn: TButton;
  24.     BuildBtn: TButton;
  25.     PasteBtn: TButton;
  26.     OnTopBtn: TButton;
  27.     ExitBtn: TButton;
  28.     TitleEdit: TEdit;
  29.     MessageEdit: TEdit;
  30.     FormatRGrp: TRadioGroup;
  31.     ButtonsRGrp: TRadioGroup;
  32.     IconRGrp: TRadioGroup;
  33.     DefaultButtonRGrp: TRadioGroup;
  34.     ModalityRGrp: TRadioGroup;
  35.     CommandEdit: TEdit;
  36.     HandleLabel: TLabel;
  37.     HandleEdit: TEdit;
  38.     procedure FormCreate(Sender: TObject);
  39.     procedure TestBtnClick(Sender: TObject);
  40.     procedure BuildBtnClick(Sender: TObject);
  41.     procedure PasteBtnClick(Sender: TObject);
  42.     procedure OnTopBtnClick(Sender: TObject);
  43.     procedure ExitBtnClick(Sender: TObject);
  44.     procedure FormatRGrpClick(Sender: TObject);
  45.     procedure ButtonsRGrpClick(Sender: TObject);
  46.     procedure IconRGrpClick(Sender: TObject);
  47.     procedure DefaultButtonRGrpClick(Sender: TObject);
  48.     procedure ModalityRGrpClick(Sender: TObject);
  49.     procedure TitleEditChange(Sender: TObject);
  50.     procedure MessageEditChange(Sender: TObject);
  51.  
  52.   private
  53.     { Private declarations }
  54.   public
  55.     { Public declarations }
  56.     TheIcon, TheButtons, TheDefaultButton : word ;
  57.     TheTitle, TheMessage,
  58.     StartStr, IconStr, ButtonStr,
  59.     DefaultButtonStr, ModalityStr : string ;
  60.     OnTop : boolean ;
  61.   end ;
  62.  
  63. var
  64.   MBDesigner: TMBDesigner ;
  65.  
  66. implementation
  67.  
  68. {$R *.DFM}
  69.  
  70. procedure TMBDesigner.FormCreate(Sender: TObject);
  71. begin
  72.   TheMessage := '' ;
  73.   TheTitle := '' ;
  74.   StartStr := 'Application.MessageBox( ' ;
  75.   ButtonStr := ' MB_OK' ;
  76.   OnTop := FALSE ;
  77.   OnTopBtn.Caption := '&On Top' ;
  78. end ;
  79.  
  80. procedure TMBDesigner.TestBtnClick(Sender: TObject);
  81. var
  82.   MsgBuff, TitleBuff : array [0..127] of char ;
  83. begin
  84.   Application.MessageBox
  85.   (
  86.     StrPCopy( MsgBuff, Trim( MessageEdit.Text, #39 )),
  87.     StrPCopy( TitleBuff, Trim( TitleEdit.Text, #39 )),
  88.     TheButtons or TheIcon or TheDefaultButton
  89.   ) ;
  90. end;
  91.  
  92. procedure TMBDesigner.BuildBtnClick(Sender: TObject);
  93. begin
  94.   if FormatRGrp.ItemIndex = 0 then
  95.     if HandleEdit.Text <> '' then
  96.       StartStr := StartStr + HandleEdit.Text + ', '
  97.     else
  98.       StartStr := StartStr + 'HWindow, ' ;
  99.  
  100.   CommandEdit.Text :=
  101.     StartStr
  102.     + TheMessage + ', '
  103.     + TheTitle + ', '
  104.     + ButtonStr
  105.     + IconStr
  106.     + DefaultButtonStr
  107.     + ModalityStr
  108.     + ' ) ; '
  109. end ;
  110.  
  111. procedure TMBDesigner.PasteBtnClick(Sender: TObject);
  112. var
  113.   Wnd : HWnd ;
  114. begin
  115.   ClipBoard.AsText := CommandEdit.Text ;
  116.   SendMessage( FindChild( 'TEditWindow', 'TEditControl' ), WM_PASTE, 0, 0 ) ;
  117. end ;
  118.  
  119. procedure TMBDesigner.OnTopBtnClick(Sender: TObject);
  120. begin
  121.   OnTop := not OnTop ;
  122.  
  123.   case OnTop of
  124.     TRUE :
  125.     begin
  126.       NoStayOnTop( Handle ) ;
  127.       OnTopBtn.Caption := '&On Top' ;
  128.     end ;
  129.  
  130.     FALSE :
  131.     begin
  132.       StayOnTop( Handle ) ;
  133.       OnTopBtn.Caption := '&Off Top' ;
  134.     end ;
  135.  
  136.   end ;
  137. end;
  138.  
  139. procedure TMBDesigner.ExitBtnClick(Sender: TObject);
  140. begin
  141.   Close ;
  142. end ;
  143.  
  144. procedure TMBDesigner.FormatRGrpClick(Sender: TObject);
  145. begin
  146.   case FormatRGrp.ItemIndex of
  147.     0 :
  148.     begin
  149.       HandleEdit.Enabled := TRUE ;
  150.       HandleLabel.Enabled := TRUE ;
  151.       StartStr := 'MessageBox( ' ;
  152.     end ;
  153.  
  154.     1 :
  155.     begin
  156.       HandleEdit.Text := '' ;
  157.       HandleEdit.Enabled := FALSE ;
  158.       HandleLabel.Enabled := FALSE ;
  159.       StartStr := 'Application.MessageBox( ' ;
  160.     end ;
  161.   end (* case *) ;
  162.  
  163. end ;
  164.  
  165. procedure TMBDesigner.ButtonsRGrpClick(Sender: TObject);
  166. begin
  167.   case ButtonsRGrp.ItemIndex of
  168.     0 :
  169.     begin
  170.       TheButtons := MB_ABORTRETRYIGNORE ;
  171.       ButtonStr := 'MB_ABORTRETRYIGNORE ' ;
  172.     end ;
  173.  
  174.     1 :
  175.     begin
  176.       TheButtons := MB_OK ;
  177.       ButtonStr := 'MB_OK ' ;
  178.     end ;
  179.  
  180.     2 :
  181.     begin
  182.       TheButtons := MB_OKCANCEL ;
  183.       ButtonStr := 'MB_OKCANCEL ' ;
  184.     end ;
  185.  
  186.     3 :
  187.     begin
  188.       TheButtons := MB_RETRYCANCEL ;
  189.       ButtonStr := 'MB_RETRYCANCEL ' ;
  190.     end ;
  191.  
  192.     4 :
  193.     begin
  194.       TheButtons := MB_YESNO ;
  195.       ButtonStr := 'MB_YESNO ' ;
  196.     end ;
  197.  
  198.     5 :
  199.     begin
  200.       TheButtons := MB_YESNOCANCEL ;
  201.       ButtonStr := 'MB_YESNOCANCEL ' ;
  202.     end ;
  203.  
  204.   end (* case *) ;
  205. end ;
  206.  
  207. procedure TMBDesigner.IconRGrpClick(Sender: TObject);
  208. begin
  209.   case IconRGrp.ItemIndex of
  210.     0 :
  211.     begin
  212.       TheIcon := 0 ;
  213.       IconStr := '' ;
  214.     end ;
  215.  
  216.     1 :
  217.     begin
  218.       TheIcon := MB_ICONEXCLAMATION ;
  219.       IconStr := 'or MB_ICONEXCLAMATION ' ;
  220.     end ;
  221.  
  222.     2 :
  223.     begin
  224.       TheIcon := MB_ICONINFORMATION ;
  225.       IconStr := 'or MB_ICONINFORMATION ' ;
  226.     end ;
  227.  
  228.     3 :
  229.     begin
  230.       TheIcon := MB_ICONQUESTION ;
  231.       IconStr := 'or MB_ICONQUESTION ' ;
  232.     end ;
  233.  
  234.     4 :
  235.     begin
  236.       TheIcon := MB_ICONSTOP ;
  237.       IconStr := 'or MB_ICONSTOP ' ;
  238.     end ;
  239.  
  240.   end (* case *) ;
  241. end ;
  242.  
  243. procedure TMBDesigner.DefaultButtonRGrpClick(Sender: TObject);
  244. begin
  245.   case DefaultButtonRGrp.ItemIndex of
  246.     0 :
  247.     begin
  248.       TheDefaultButton := MB_DEFBUTTON1 ;
  249.       DefaultButtonStr := ''
  250.     end ;
  251.  
  252.     1 :
  253.     begin
  254.       TheDefaultButton := MB_DEFBUTTON2 ;
  255.       DefaultButtonStr := 'or MB_DEFBUTTON2 '
  256.     end ;
  257.  
  258.     2 :
  259.     begin
  260.       TheDefaultButton := MB_DEFBUTTON3 ;
  261.       DefaultButtonStr := 'or MB_DEFBUTTON3 '
  262.     end ;
  263.  
  264.   end (* case *) ;
  265. end ;
  266.  
  267. procedure TMBDesigner.ModalityRGrpClick(Sender: TObject);
  268. begin
  269.   case ModalityRGrp.ItemIndex of
  270.     0 :
  271.     begin
  272.       ModalityStr := '' ;
  273.     end ;
  274.  
  275.     1 :
  276.     begin
  277.       ModalityStr := 'or MB_SYSTEMMODAL ' ;
  278.     end ;
  279.  
  280.     2 :
  281.     begin
  282.       ModalityStr := 'or MB_TASKMODAL ' ;
  283.     end ;
  284.  
  285.   end (* case *) ;
  286. end ;
  287.  
  288. procedure TMBDesigner.TitleEditChange(Sender: TObject);
  289. begin
  290.   TheTitle := TitleEdit.Text ;
  291. end ;
  292.  
  293. procedure TMBDesigner.MessageEditChange(Sender: TObject);
  294. begin
  295.   TheMessage := MessageEdit.Text ;
  296. end ;
  297.  
  298. end.
  299.  
  300.  
  301.